package per.jdz.demo.enums;

import lombok.Getter;

/**
 * @author Jdz
 * @date 2025/1/7
 */
@Getter
public enum RoomStatus {
    SOLD_OUT("已售", "0"),
    NOT_AVAILABLE("不可售", "1"),
    AVAILABLE("可售", "2"),
    CHECKED_OUT("退房", "3");

    private final String displayValue;
    private final String value;

    RoomStatus(String displayValue, String value) {
        this.displayValue = displayValue;
        this.value = value;
    }

    /**
     * 根据显示值获取对应的枚举对象。
     *
     * @param displayValue 显示值
     * @return 对应的枚举对象或 null 如果没有找到匹配项
     */
    public static String fromDisplayValue(String displayValue) {
        for (RoomStatus status : RoomStatus.values()) {
            if (status.getDisplayValue().equals(displayValue)) {
                return status.value;
            }
        }
        return null; // 或者抛出异常，根据需求决定
    }

    /**
     * 获取所有状态的描述列表。
     *
     * @return 包含所有状态描述的字符串数组
     */
    public static String[] getAllDisplayValues() {
        return java.util.Arrays.stream(values())
                .map(RoomStatus::getDisplayValue)
                .toArray(String[]::new);
    }
}